Refreshovanie dat z aplikacneho servera

Otázka od: Roman Pagac

30. 9. 2002 16:59

Zdravim!
Mam aplikacny server s TIBClientDataset a TDatasetProvider. Na klientskej
strane mam TIBClientDataset, ktory je napojeny na TDatasetProvider cez
SoapConnection. Chcel by som spravit to, ze v kazdom momente budem mat v
TIBClientDataset na klientskej strane iba napr. 30 zaznamov (pretoze v
databaze mam radovo tisice zaznamov; taktiez nerad by som robil
inkrementalny fetching, pretoze ak niekto bude chciet ist na koniec zaznamov
=> to iste ako by som fetchol vsetky data z DB). Pokusil som sa to spravit
takto:
- server side:
- TIBClientDataset:
- FetchOnDemand:= False;
- PackedRecords:= 30;

- TDatasetProvider:
- event BeforeGetRecords:
   if dspJournal.DataSet.Active then
     dspJournal.DataSet.Locate('RECORD_ID',OwnerData,[]);

- client side:
- TIBClientDataset:
- FetchOnDemand:= False;
- PackedRecords:= 30;
- event BeforegetRecords:
   var CurRecord: TBookMark;
   begin
      if cdsJournal.Active then
        begin
           CurRecord:= cdsJournal.GetBookmark;
           try
             cdsJournal.Last;
             OwnerData:= cdsJournal.FieldValues['RECORD_ID'];
             cdsJournal.GotoBookmark(CurRecord);
           finally
             cdsJournal.FreeBookmark(CurRecord);
           end;
        end;

Ale toto nefunguje. Vratil mi to len prvych 30 zaznamov a nic viac. A ked
scrollujem po zaznamoch, tak pridem na posledny a nefetchne mi dalsich 30 a
nevymaze predchadzajuce (kedze chcem mat v kazdom okamihu v TIBClientDataset
na klientskej strane prave 30 zaznamov). Viem ze by som mal asi pouzit
niekde metodu EmptyDataset ale neviem presne kde.
Vdaka za vsetky rady a tipy.

S pozdravom Roman Pagac.